#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>

int main()
{
    // cscode 多行注释 alt+shift+A
    //  模拟孤儿进程：
    /* 对于以下代码，fork函数创建的子进程会一直打印信息，
    而父进程在打印5次信息后会退出，此时该子进程就变成了孤儿进程。 */
    pid_t id = fork();
    if (id > 0)
    {
        // 父进程
        int count = 5;
        while (count)
        {
            printf("I am a father...PID:%d,PPID:%d,count:%d\n", getpid(), getppid(), count);
            sleep(1);
            count--;
        }
        printf("father quit!\n");
        exit(1);
    }
    else if (id == 0)
    {
        // 子进程
        while (1)
        {
            printf("I am a child...PID:%d,PPID:%d\n", getpid(), getppid());
            sleep(1);
        }
    }
    else
    {
        // error
    }
    printf("hello");
    return 0;
}